package com.yycx.module.bus.client.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;

import java.util.Date;

import com.yycx.common.mybatis.base.entity.AbstractEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.yycx.common.mybatis.annotation.TableAlias;

/**
 * 业务员资保金收支记录
 *
 * @author flyme
 * @date 2023-08-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("bus_saleman_balance")
@TableAlias("bsb")
@ApiModel(value = "BusSalemanBalance对象", description = "业务员资保金收支记录")
public class BusSalemanBalance extends AbstractEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @TableId(value = "saleManBalanceId", type = IdType.ASSIGN_ID)
    private Long saleManBalanceId;

    @ApiModelProperty(value = "业务员")
    private Long saleManId;

    /**
     * 部门ID
     */
    private Long deptId;

    @ApiModelProperty(value = "父ID")
    private Long parentId;

    @ApiModelProperty(value = "订单ID")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String orderId;

    @ApiModelProperty(value = "订单明细ID")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String orderDetailsId;

    @ApiModelProperty(value = "业务员")
    private Long userId;
    /**
     * 账套ID
     */
    private Long companyId;

    @ApiModelProperty(value = "机构ID")
    private Long organizationId;

    @ApiModelProperty(value = "当前金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "初始收款金额")
    private BigDecimal originalAmount;

    @ApiModelProperty(value = "保证金金额")
    private BigDecimal depositAmount;

    @ApiModelProperty(value = "账户类型(1 保证金)")
    private Integer amountType;

    @ApiModelProperty(value = "类型(1:收 2:支)")
    private Integer optType;

    /**
     * 付款账户
     */
    private Long payBankId;

    @ApiModelProperty(value = "交易日期")
    private Date amountDate;

    @ApiModelProperty(value = "付款银行")
    private String payBankName;

    @ApiModelProperty(value = "付款账户")
    private String payCardNo;

    @ApiModelProperty(value = "付款人")
    private String payUserName;

    @ApiModelProperty(value = "版本号")
    private Integer version;

    @ApiModelProperty(value = "收款账户")
    private Long bankId;

    @ApiModelProperty(value = "认款ID")
    private Long rkId;

    @ApiModelProperty(value = "认款状态")
    private Integer balanceState;

    @ApiModelProperty(value = "备注")
    private String remark;

}
